/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols;

import ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.BusinessDocument;
import ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.SpeechAct;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Business Message</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getTimeToReceiptAcknowledgement <em>Time To Receipt Acknowledgement</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getTimeToReadAcknowledgement <em>Time To Read Acknowledgement</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getSender <em>Sender</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getReceiver <em>Receiver</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getGuard <em>Guard</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getIntention <em>Intention</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getInformation <em>Information</em>}</li>
 *   <li>{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getBmInteractionPath <em>Bm Interaction Path</em>}</li>
 * </ul>
 * </p>
 *
 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage()
 * @model
 * @generated
 */
public interface BusinessMessage extends InteractionProtocolElement {
	/**
	 * Returns the value of the '<em><b>Time To Receipt Acknowledgement</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time To Receipt Acknowledgement</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time To Receipt Acknowledgement</em>' attribute.
	 * @see #setTimeToReceiptAcknowledgement(String)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_TimeToReceiptAcknowledgement()
	 * @model
	 * @generated
	 */
	String getTimeToReceiptAcknowledgement();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getTimeToReceiptAcknowledgement <em>Time To Receipt Acknowledgement</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time To Receipt Acknowledgement</em>' attribute.
	 * @see #getTimeToReceiptAcknowledgement()
	 * @generated
	 */
	void setTimeToReceiptAcknowledgement(String value);

	/**
	 * Returns the value of the '<em><b>Time To Read Acknowledgement</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time To Read Acknowledgement</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time To Read Acknowledgement</em>' attribute.
	 * @see #setTimeToReadAcknowledgement(String)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_TimeToReadAcknowledgement()
	 * @model
	 * @generated
	 */
	String getTimeToReadAcknowledgement();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getTimeToReadAcknowledgement <em>Time To Read Acknowledgement</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time To Read Acknowledgement</em>' attribute.
	 * @see #getTimeToReadAcknowledgement()
	 * @generated
	 */
	void setTimeToReadAcknowledgement(String value);

	/**
	 * Returns the value of the '<em><b>Sender</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Sender</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Sender</em>' reference.
	 * @see #setSender(Lifeline)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_Sender()
	 * @model required="true"
	 * @generated
	 */
	Lifeline getSender();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getSender <em>Sender</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Sender</em>' reference.
	 * @see #getSender()
	 * @generated
	 */
	void setSender(Lifeline value);

	/**
	 * Returns the value of the '<em><b>Receiver</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Receiver</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Receiver</em>' reference.
	 * @see #setReceiver(Lifeline)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_Receiver()
	 * @model required="true"
	 * @generated
	 */
	Lifeline getReceiver();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getReceiver <em>Receiver</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Receiver</em>' reference.
	 * @see #getReceiver()
	 * @generated
	 */
	void setReceiver(Lifeline value);

	/**
	 * Returns the value of the '<em><b>Guard</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Guard</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Guard</em>' containment reference.
	 * @see #setGuard(Condition)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_Guard()
	 * @model containment="true"
	 * @generated
	 */
	Condition getGuard();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getGuard <em>Guard</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Guard</em>' containment reference.
	 * @see #getGuard()
	 * @generated
	 */
	void setGuard(Condition value);

	/**
	 * Returns the value of the '<em><b>Intention</b></em>' attribute.
	 * The literals are from the enumeration {@link ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.SpeechAct}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Intention</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Intention</em>' attribute.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.SpeechAct
	 * @see #setIntention(SpeechAct)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_Intention()
	 * @model
	 * @generated
	 */
	SpeechAct getIntention();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getIntention <em>Intention</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Intention</em>' attribute.
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.b2bcollaborations.SpeechAct
	 * @see #getIntention()
	 * @generated
	 */
	void setIntention(SpeechAct value);

	/**
	 * Returns the value of the '<em><b>Information</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Information</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Information</em>' reference.
	 * @see #setInformation(BusinessDocument)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_Information()
	 * @model
	 * @generated
	 */
	BusinessDocument getInformation();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getInformation <em>Information</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Information</em>' reference.
	 * @see #getInformation()
	 * @generated
	 */
	void setInformation(BusinessDocument value);

	/**
	 * Returns the value of the '<em><b>Bm Interaction Path</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Bm Interaction Path</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Bm Interaction Path</em>' reference.
	 * @see #setBmInteractionPath(InteractionPath)
	 * @see ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.InteractionprotocolsPackage#getBusinessMessage_BmInteractionPath()
	 * @model
	 * @generated
	 */
	InteractionPath getBmInteractionPath();

	/**
	 * Sets the value of the '{@link ar.edu.utn.frsf.cidisi.upcolbpip.interactionprotocols.BusinessMessage#getBmInteractionPath <em>Bm Interaction Path</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Bm Interaction Path</em>' reference.
	 * @see #getBmInteractionPath()
	 * @generated
	 */
	void setBmInteractionPath(InteractionPath value);

} // BusinessMessage
